package Classes;

import java.io.Serializable;
import javax.swing.Icon;

/**
 * Classe para representar uma pessoa.
 * 
 * @author Daniela
 */
public class Professor implements Serializable, Pessoa{

    private String nome, telefone;
    private char genero;
    private Icon foto;

    /**
     * Construtor Professor com quatro parametros.
     * 
     * @param nome
     *          O nome da pessoa.
     * @param genero 
     *          O genero (sexo) da pessoa.
     * @param foto
     *          A imagem da pessoa.
     * @param telefone 
     *          O telefone da pessoa.
     * @throws Exception 
     *          Excecao para nome  null ou vazio e genero vazio.
     */
    public Professor(String nome, char genero, Icon foto, 
            String telefone) {
        this.nome = nome;
        this.genero = genero;
        this.telefone = telefone;
        this.foto = foto;
    }

    /**
     * Recupera o nome da pessoa.
     * 
     * @return 
     *          nome da pessoa
     */
    @Override
    public String getNome() {
        return nome;
    }

    /**
     * Atribui um novo nome a pessoa.
     * @param nome 
     *          Novo nome a ser atribuido à pessoa
     */
    @Override
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * Recupera o telefone da pessoa.
     * 
     * @return 
     *          O telefone da pessoa.
     */
    @Override
    public String getTelefone() {
        return telefone;
    }

    /**
     * Atribui um novo telefone a pessoa.
     * @param telefone
     *          O telefone a ser atribuído à pessoa.
     */
    @Override
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    /**
     * Recupera o genero(sexo) da pessoa
     * @return genero da pessoa
     */
    @Override
    public String getGenero() {
        if (this.genero == 'f'){
            return "Feminino";
        }
        return "Masculino";
    }

    /**
     * Atribui um novo genero à pessoa
     * @param genero 
     *          Novo genero a ser atribuído à pessoa
     */
    @Override
    public void setGenero(char genero) {
        this.genero = genero;
    }

    /**
     * Recupera o foto da pessoa
     * @return 
     *          A foto da pessoa
     */
    @Override
    public Icon getFoto() {
        return foto;
    }
    /**
     * Atribui uma nova foto à pessoa
     * @param foto 
     *          Nova foto a ser atribuído à pessoa
     */
    @Override
    public void setFoto(Icon foto) {
        this.foto = foto;
    }

}
